package com.findFish.cage.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.findFish.common.annotation.Excel;
import com.findFish.common.core.domain.BaseEntity;

/**
 * 网箱历史数据对象 cage_history
 * 
 * @author admin
 * @date 2025-03-31
 */
public class CageHistory extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 历史记录ID */
    private String id;

    /** 网箱ID */
    @Excel(name = "网箱ID")
    private String cageId;

    /** 快照日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "快照日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date snapshotDate;

    /** 网箱状态 */
    @Excel(name = "网箱状态")
    private String status;

    /** 当时养殖数量（条） */
    @Excel(name = "当时养殖数量", readConverterExp = "条=")
    private Long population;

    /** 当时水流速度（m/s） */
    @Excel(name = "当时水流速度", readConverterExp = "m=/s")
    private Long waterSpeed;

    /** 当时潮汐高度（m） */
    @Excel(name = "当时潮汐高度", readConverterExp = "m=")
    private Long tideLevel;

    /** 备注 */
    @Excel(name = "备注")
    private String notes;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    public void setId(String id) 
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }

    public void setCageId(String cageId) 
    {
        this.cageId = cageId;
    }

    public String getCageId() 
    {
        return cageId;
    }

    public void setSnapshotDate(Date snapshotDate) 
    {
        this.snapshotDate = snapshotDate;
    }

    public Date getSnapshotDate() 
    {
        return snapshotDate;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setPopulation(Long population) 
    {
        this.population = population;
    }

    public Long getPopulation() 
    {
        return population;
    }

    public void setWaterSpeed(Long waterSpeed) 
    {
        this.waterSpeed = waterSpeed;
    }

    public Long getWaterSpeed() 
    {
        return waterSpeed;
    }

    public void setTideLevel(Long tideLevel) 
    {
        this.tideLevel = tideLevel;
    }

    public Long getTideLevel() 
    {
        return tideLevel;
    }

    public void setNotes(String notes) 
    {
        this.notes = notes;
    }

    public String getNotes() 
    {
        return notes;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("cageId", getCageId())
            .append("snapshotDate", getSnapshotDate())
            .append("status", getStatus())
            .append("population", getPopulation())
            .append("waterSpeed", getWaterSpeed())
            .append("tideLevel", getTideLevel())
            .append("notes", getNotes())
            .append("createdAt", getCreatedAt())
            .toString();
    }
}
